#!/bin/bash

# 体育场馆预约系统 - 前端启动脚本
# 作者: Claude Assistant  
# 日期: 2025-06-13

echo "🎨 启动体育场馆预约系统前端服务..."

# 检查是否在后端项目根目录
if [ ! -d "admin_frontend" ]; then
    echo "❌ 错误: 未找到前端目录 admin_frontend"
    echo "请确保在后端项目根目录运行此脚本"
    exit 1
fi

# 进入前端目录
cd admin_frontend

# 检查package.json是否存在
if [ ! -f "package.json" ]; then
    echo "❌ 错误: 前端目录中未找到 package.json"
    exit 1
fi

# 检查Node.js是否安装
if ! command -v node &> /dev/null; then
    echo "❌ 错误: 未找到 Node.js"
    echo "请先安装 Node.js: https://nodejs.org/"
    exit 1
fi

# 检查npm是否安装
if ! command -v npm &> /dev/null; then
    echo "❌ 错误: 未找到 npm"
    echo "请先安装 npm"
    exit 1
fi

echo "📦 Node.js 版本: $(node --version)"
echo "📦 npm 版本: $(npm --version)"

# 检查依赖是否已安装
if [ ! -d "node_modules" ]; then
    echo "📦 安装前端依赖包..."
    npm install
    if [ $? -ne 0 ]; then
        echo "❌ 前端依赖安装失败"
        echo "🔄 尝试清除缓存后重新安装..."
        npm cache clean --force
        rm -rf node_modules package-lock.json
        npm install
        if [ $? -ne 0 ]; then
            echo "❌ 依赖安装仍然失败，请检查网络连接"
            exit 1
        fi
    fi
else
    echo "✅ 前端依赖已安装"
fi

# 检查端口是否被占用
if lsof -Pi :8088 -sTCP:LISTEN -t >/dev/null ; then
    echo "⚠️  警告: 端口 8088 已被占用"
    echo "检查是否已有前端服务在运行..."
    
    # 检查是否是vue-cli-service进程
    if ps aux | grep -v grep | grep "vue-cli-service serve" >/dev/null; then
        echo "✅ 发现已有前端服务正在运行"
        echo "📍 前端地址: http://115.190.76.158:8088"
        echo "如需重启服务，请先停止现有进程"
        exit 0
    else
        echo "正在尝试终止占用进程..."
        lsof -ti:8088 | xargs kill -9 2>/dev/null
        sleep 2
    fi
fi

# 检查后端服务是否运行
echo "🔍 检查后端服务状态..."
if curl -s "http://115.190.76.158:5000/api/admin/login" >/dev/null 2>&1; then
    echo "✅ 后端服务运行正常"
else
    echo "⚠️  警告: 后端服务未运行或无法访问"
    echo "请先启动后端服务: ./start_backend.sh"
    echo "或者忽略此警告继续启动前端..."
    read -p "是否继续启动前端? (y/n): " -n 1 -r
    echo ""
    if [[ ! $REPLY =~ ^[Yy]$ ]]; then
        exit 1
    fi
fi

# 设置环境变量
export NODE_ENV=development
export NODE_OPTIONS="--max-old-space-size=2048"

# 启动Vue开发服务器
echo "🌟 启动Vue开发服务器..."
echo "📍 前端地址: http://115.190.76.158:8088"
echo "🔗 后端地址: http://115.190.76.158:5000"
echo "🔑 管理员登录: admin / admin123"
echo ""
echo "按 Ctrl+C 停止服务"
echo "================================================"

# 使用nohup在后台启动服务，并将输出重定向到日志文件
if [ "$1" = "daemon" ]; then
    echo "🔄 以守护进程模式启动..."
    nohup npm run serve -- --host 0.0.0.0 --port 8088 > frontend.log 2>&1 &
    PID=$!
    echo "前端服务已启动，PID: $PID"
    echo "日志文件: $(pwd)/frontend.log"
    echo "查看日志: tail -f $(pwd)/frontend.log"
    
    # 等待几秒钟检查服务是否启动成功
    sleep 5
    if kill -0 $PID 2>/dev/null; then
        echo "✅ 前端服务启动成功"
    else
        echo "❌ 前端服务启动失败，请查看日志文件"
    fi
else
    # 普通模式启动
    npm run serve -- --host 0.0.0.0 --port 8088
fi

echo ""
echo "🛑 前端服务已停止" 